package net.servir.diagnostico.service.impl;

import java.util.List;

import net.servir.diagnostico.dao.DiagnosticoDAO;
import net.servir.diagnostico.model.IdentificacionParticipante;
import net.servir.diagnostico.model.Pregunta;
import net.servir.diagnostico.model.PreguntaEncuesta;
import net.servir.diagnostico.model.Resultado;
import net.servir.diagnostico.model.ResumenPreguntas;
import net.servir.diagnostico.model.Sistema;
import net.servir.diagnostico.model.Test;
import net.servir.diagnostico.model.TestGenerado;
import net.servir.diagnostico.model.jsp.JspResultado;
import net.servir.diagnostico.service.DiagnosticoService;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

@Service
public class DiagnosticoServiceImpl implements DiagnosticoService {

	@Autowired
	private DiagnosticoDAO diagnosticoDAO;

	public Number obtenerIdTestActivo(Number idSistema) {
		return diagnosticoDAO.obtenerIdTestActivo(idSistema);
	}

	public Number verificarDisponibilidadTest(Number idTest) {
		return diagnosticoDAO.verificarDisponibilidadTest(idTest);
	}

	public String validarParticipante(Number idTest, String dni, String clave) {
		return diagnosticoDAO.validarParticipante(idTest, dni, clave);
	}

	public IdentificacionParticipante getIdentificacionParticipante(
			Number idParticipante) {
		return diagnosticoDAO.getIdentificacionParticipante(idParticipante);
	}

	public Number obtenerSegundosRestantes(Number idTest, String tipo) {
		return diagnosticoDAO.obtenerSegundosRestantes(idTest, tipo);
	}

	public int obtenerFlagIntervaloTest(Number idTest) {
		return diagnosticoDAO.obtenerFlagIntervaloTest(idTest);
	}

	public void grabarRptaPregunta(String codSession, Number idTestGenerado,
			Number nroPregEval, Number rptaPregEval, String ipSession) {
		diagnosticoDAO.grabarRptaPregunta(codSession, idTestGenerado,
				nroPregEval, rptaPregEval, ipSession);
	}

	public Pregunta obtenerPregunta(Number idTestGenerado, Number nroPregunta) {
		return diagnosticoDAO.obtenerPregunta(idTestGenerado, nroPregunta);
	}

	public boolean esUltimaPregunta(Number idTestGenerado, Number nroPregunta) {
		return diagnosticoDAO.esUltimaPregunta(idTestGenerado, nroPregunta);
	}

	public Test obtenerTest(Number idTest) {
		return diagnosticoDAO.obtenerTest(idTest);
	}

	public void generarPrueba(Number idParticipante) {
		diagnosticoDAO.generarPrueba(idParticipante);
	}

	public ResumenPreguntas obtenerResumenPreguntas(Number idTestGenerado) {
		return diagnosticoDAO.obtenerResumenPreguntas(idTestGenerado);
	}

	public List<PreguntaEncuesta> obtenerPreguntasEncuesta(Number idParticipante) {
		return diagnosticoDAO.obtenerPreguntasEncuesta(idParticipante);
	}

	public Number getIdSistemaTest(Number idTest) {
		return diagnosticoDAO.getIdSistemaTest(idTest);
	}

	public Sistema getSistema(Number idSistema) {
		return diagnosticoDAO.getSistema(idSistema);
	}

	public void grabarEnvioPrueba(Number idTestGenerado) {
		diagnosticoDAO.grabarEnvioPrueba(idTestGenerado);
	}

	public List<Pregunta> obtenerPreguntasPorBanco(Number idBancoPregunta) {
		return diagnosticoDAO.obtenerPreguntasPorBanco(idBancoPregunta);
	}

	public void grabarRespuestaEncuesta(Number idParticipante,
			List<PreguntaEncuesta> preguntas) {
		diagnosticoDAO.grabarRespuestaEncuesta(idParticipante, preguntas);
	}

	public void grabarSugerenciaEncuesta(Number idParticipante,
			String sugerencia) {
		diagnosticoDAO.grabarSugerenciaEncuesta(idParticipante, sugerencia);
	}

	public void grabarNecesidad(Number idParticipante, String sugerencia) {
		diagnosticoDAO.grabarNecesidad(idParticipante, sugerencia);
	}

	public List<Resultado> obtenerResultados(Number idTestGenerado,
			boolean bReqCapacitacion) {
		return diagnosticoDAO.obtenerResultados(idTestGenerado,
				bReqCapacitacion);
	}

	public List<Resultado> obtenerResultadosRRHH(Number idTestGenerado,
			boolean bReqCapacitacion) {
		return diagnosticoDAO.obtenerResultadosRRHH(idTestGenerado,
				bReqCapacitacion);
	}

	public List<Resultado> obtenerResultadosRRHH_General(Number idTestGenerado,
			boolean bReqCapacitacion) {
		return diagnosticoDAO.obtenerResultadosRRHH_General(idTestGenerado,
				bReqCapacitacion);
	}

	public List<Resultado> obtenerResultadosRRHHResponsable(
			Number idTestGenerado, boolean bReqCapacitacion) {
		return diagnosticoDAO.obtenerResultadosRRHHResponsable(idTestGenerado,
				bReqCapacitacion);
	}

	public String obtenerPorcentajeAprob(Number idTestGenerado) {
		return diagnosticoDAO.obtenerPorcentajeAprob(idTestGenerado);
	}

	public void calcularPuntaje(Number idParticipante) {
		diagnosticoDAO.calcularPuntaje(idParticipante);
	}

	public String validarResultadoParticipante(Number idSistema, String dni,
			String clave) {
		return diagnosticoDAO.validarResultadoParticipante(idSistema, dni,
				clave);
	}

	public Number obtenerTestParticipante(Number idParticipante) {
		return diagnosticoDAO.obtenerTestParticipante(idParticipante);
	}

	public void registrarSesionParticipante(Number idParticipante,
			String codSesion) {
		diagnosticoDAO.registrarSesionParticipante(idParticipante, codSesion);
	}

	public void setAuditoria(String codSession, String ip,
			IdentificacionParticipante participante, String accion,
			Number cod_test) {
		diagnosticoDAO.setAuditoria(codSession, ip, participante, accion,
				cod_test);
	}

	public Integer obtenerRespondidas(Number idParticipante) {
		return diagnosticoDAO.obtenerRespondidas(idParticipante);
	}

	public TestGenerado getTestGenerado(Number idTestGenerado) {
		return diagnosticoDAO.getTestGenerado(idTestGenerado);
	}

	public Number getSistemaTestActivo() {
		return diagnosticoDAO.getSistemaTestActivo();
	}

	public Number obtenerPuestoTipo(IdentificacionParticipante identParticipante) {
		return diagnosticoDAO.obtenerPuestoTipo(identParticipante);
	}

	public String obtenerPorcentajeAprobRRHH(Number idTestGenerado) {
		return diagnosticoDAO.obtenerPorcentajeAprobRRHH(idTestGenerado);
	}

	public List<IdentificacionParticipante> getTestGenerados(Number idTest,
			Integer filtroSoloEvaluados) {
		return this.diagnosticoDAO
				.getTestGenerados(idTest, filtroSoloEvaluados);
	}

	@Override
	public Integer getTotalPreguntas(Number idTest) {
		// TODO Auto-generated method stub
		return diagnosticoDAO.getTotalPreguntas(idTest);
	}

	@Override
	public Integer getTotalRespuestasCorrectas(Number idTest) {
		// TODO Auto-generated method stub
		return diagnosticoDAO.getTotalRespuestasCorrectas(idTest);
	}

	public IdentificacionParticipante validaLlenadoEncuesta(IdentificacionParticipante participante) {
		return diagnosticoDAO.validaLlenadoEncuesta(participante);
	}

	public JspResultado resumenPreguntasEspecificas(Number idTestGenerado,
			JspResultado resultado) {
		return diagnosticoDAO.resumenPreguntasEspecificas(idTestGenerado,
				resultado);
	};
	public List<IdentificacionParticipante> getTestGenerados(Number id_participante){
		return diagnosticoDAO.getTestGenerados(id_participante);
	};
	
	public Number getEstadoEvaluacion(Number idParticipante){
		return diagnosticoDAO.getEstadoEvaluacion(idParticipante);
	}
}
